package com.sm4;

import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.symmetric.SM4;

import java.nio.charset.Charset;

/**
 * 业务聚合
 *
 * @version [V2.0]
 * @package com.sm4;
 * @description:[用一句话描述该文件做什么]
 * @author: [zhuben]
 * @date: [2024-02-23 11:39]
 * @copyright: 2024 echovin.com
 */

public final class SmUtils extends SmUtil {
    /**
     * CBC模式 不满block长度时使用0填充
     * @param key 密钥，支持密钥长度：128位
     * @param salt 盐
     * @return
     */
    public static SM4 sm4(byte [] key, byte [] salt){
        return new SM4(Mode.CBC, Padding.ZeroPadding, key, salt);
    }

    /**
     *
     * @param mode 加密算法模式
     * @param padding 补码方式
     * @param key 密钥，支持密钥长度：128位
     * @param salt 盐
     * @return
     */
    public static SM4 sm4(Mode mode, Padding padding, byte [] key, byte [] salt){
        return new SM4(mode, padding, key, salt);
    }
}
